'' Title: ext/preprocessor/tuple/toseq.bi
''  This file is part of the <ext/Preprocessor> library API, and can be
''  directly included by user programs.
''
'' About: License
''  Copyright (c) 2007-2014, FreeBASIC Extended Library Development Group
''  Copyright (c) 2002, Paul Mensonides
''
''  Distributed under the Boost Software License, Version 1.0. See
''  accompanying file LICENSE_1_0.txt or copy at
''  http://www.boost.org/LICENSE_1_0.txt)
''
''  Distributed under the FreeBASIC Extended Library Group license. See
''  accompanying file LICENSE.txt or copy at
''  http://code.google.com/p/fb-extended-lib/wiki/License

# pragma once
# ifndef FBEXT_INCLUDED_PP_TUPLE_TOSEQ_BI__
# define FBEXT_INCLUDED_PP_TUPLE_TOSEQ_BI__ -1

# define FBEXT_PP_TUPLE_TOSEQ(size, tuple) fbextPP_TupleToSeq(size, tuple)

'' Macro: fbextPP_TupleToSeq
''  converts the tuple *tuple* of size *size* into a sequence.
''
''  For example, if *size* is `3` and *tuple* is `(a,b,c)`, then this macro
''  expands to `(a)(b)(c)`.
''
'' Parameters:
''  size - is the size of the tuple.
''  tuple - is the tuple to convert.
# define fbextPP_TupleToSeq(size, tuple) _
         fbextPP_TupleToSeq__##size##tuple

# define fbextPP_TupleToSeq__1(__0) (__0)
# define fbextPP_TupleToSeq__2(__0, __1) (__0)(__1)
# define fbextPP_TupleToSeq__3(__0, __1, __2) (__0)(__1)(__2)
# define fbextPP_TupleToSeq__4(__0, __1, __2, __3) (__0)(__1)(__2)(__3)
# define fbextPP_TupleToSeq__5(__0, __1, __2, __3, __4) (__0)(__1)(__2)(__3)(__4)
# define fbextPP_TupleToSeq__6(__0, __1, __2, __3, __4, __5) (__0)(__1)(__2)(__3)(__4)(__5)
# define fbextPP_TupleToSeq__7(__0, __1, __2, __3, __4, __5, __6) (__0)(__1)(__2)(__3)(__4)(__5)(__6)
# define fbextPP_TupleToSeq__8(__0, __1, __2, __3, __4, __5, __6, __7) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)
# define fbextPP_TupleToSeq__9(__0, __1, __2, __3, __4, __5, __6, __7, __8) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)
# define fbextPP_TupleToSeq__10(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)
# define fbextPP_TupleToSeq__11(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)
# define fbextPP_TupleToSeq__12(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)
# define fbextPP_TupleToSeq__13(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)
# define fbextPP_TupleToSeq__14(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)
# define fbextPP_TupleToSeq__15(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)
# define fbextPP_TupleToSeq__16(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)
# define fbextPP_TupleToSeq__17(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)
# define fbextPP_TupleToSeq__18(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)
# define fbextPP_TupleToSeq__19(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)
# define fbextPP_TupleToSeq__20(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)
# define fbextPP_TupleToSeq__21(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)
# define fbextPP_TupleToSeq__22(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)
# define fbextPP_TupleToSeq__23(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)
# define fbextPP_TupleToSeq__24(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)
# define fbextPP_TupleToSeq__25(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)(__24)
# define fbextPP_TupleToSeq__26(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)(__24)(__25)
# define fbextPP_TupleToSeq__27(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)(__24)(__25)(__26)
# define fbextPP_TupleToSeq__28(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)(__24)(__25)(__26)(__27)
# define fbextPP_TupleToSeq__29(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27, __28) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)(__24)(__25)(__26)(__27)(__28)
# define fbextPP_TupleToSeq__30(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27, __28, __29) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)(__24)(__25)(__26)(__27)(__28)(__29)
# define fbextPP_TupleToSeq__31(__0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27, __28, __29, __30) (__0)(__1)(__2)(__3)(__4)(__5)(__6)(__7)(__8)(__9)(__10)(__11)(__12)(__13)(__14)(__15)(__16)(__17)(__18)(__19)(__20)(__21)(__22)(__23)(__24)(__25)(__26)(__27)(__28)(__29)(__30)

# endif ' include guard
